CBMSTEVE.CA - Personal pages of Steve J. Gray |
Changes | Info | Prototypes | Remakes | PET Projects | CBM Projects | Modding | 3D Models | KiCad | Github | Ohio Scientific | Other | My Software | My Collections | Facebooks |
Welcome to the "OSI Superboard-II Rev. D Colour Project" page. The OSI C4P was my first computer. I purchased it because it had a nice 64x32 colour video board. Recently (Early 2019) my friend Walter made a swap with me for one of my spare Superboard/C1P machines that was not working. It turned out it just needed a power supply fix to get it working. Feeling nostalgic for my OSI machines we decided to try getting my C4P working. It turns out it too had a power supply issue. One supply was not working, so any board plugged into one of the two slots being powered by it would not work properly. After shuffling boards around we got it to work. Then we looked at my other C1P machine. Guess what? Yup, bad supply. Our friend Josh was able to fix it and it's now running. Now I have two machines working that haven't worked since 2006-ish. Needless to say I've been re-discovering my OSI machines since then.
It turns out Walter got hooked (it's the oldest machine in his collection) and was interested in getting another Superboard. He decided we (Him, Josh and Myself) would get Klyball's Rev D clone. We thought it might be cool to get colour working on it. Walter built his board and (since he's crazy) decided to build mine too (thanks Walter!). There was some discussion on OSIWEB.ORG about getting colour using the 630 schematics. I decided to look into it and came up with an alternate idea that took less chips. This page is the result.
The Superboard-II Revision D (600D from now on) was designed for colour expansion. The motherboard includes a socket for one extra 2114 "colour ram" and the U75 dip connector. Plugging in a new 2114 and running a ribon cable to the 630 board would enable the colour. Unfortunate the 630 board is (afaik) very rare, and there is no reproduction available. However, with signals comming from U75 we are able to tap into the colour data and make our own system. U75 contains the sync, video, and control signals we need, along with 4 lines for colour data. I decided it would be easy to use the /SVID signal (after being inverted) to select between the colour lines for ON pixels and black for OFF pixels. Using a simple 74LS157 quad multiplexer toggled by the SVID signal.
The 600D boots up in monochrome mode and has no firmware support for colour, so we would get random colours every time and the screen would be hard to read. I added a second multiplexer for monochrome mode. The video signal is routed through a dip switch to one of the mux inputs so you can select the "colour" of you monochrome "tube", and the output from the first mux goes to the 2nd mux's other input. The U75 COLOR_EN line controls this mux. When colour is enabled the SVID line output feeds the proper inputs setting them ON when SVID is high producuing the selected colour, or OFF when SVID is LOW, producing black.
The four colour bits represent the Red, Green, and Blue colour components plus one Intensity component. This is known as RGBI and was used in IBM's CGA video board. RGBI is a digital system. With 4 bits it can generate 8 basic colours (including black) and 8 more brighter versions of those colours (black becomes grey). Most modern monitors can not handle CGA signals but some can handle RGB signals. To convert from RGBI to RGB the output of the second mux is passed through a DAC consisting of resistors and diodes. This also reduces the voltage levels for the monitor. That, along with the proper sync for your monitor lets the OSI produce 16 glorious colours!
I have designed a small board about 11x4 cm. One end plugs into the U75 connector, and the other end hangs over the blank area in the centre, and can be secured with a standoff to the hole there. There is a 4 position dip switch to select the monochrome "tube" colour and there is a jumper block to select the proper sync for the monitor. You can select Composite sync (csync) or separate H and V sync and you can pick either positive or negative polarity. For csync there is a resistor to reduce the voltage to the correct level. H and V sync are usually 5V. There is a 10-pin header for RGB out, which can either be wired directly to, or can take a 10-pin IDC connector for a ribbon cable to a standard DB-9 or SCART connector etc. There is also a "Gonbes GBS" connector for connecting to the popular GBS-82xx adapters that can convert the RGBS signal to VGA. You could also use this connector for wiring up say a SCART cable. Lastly, there is a 5V power output header to enable you to power an external converter/adapter.
For testing the prototype I used an Amiga-to-SCART cable and an LCD monitor with SCART input. These monitors are great because they handle the 15kHz RGBS signal directly. The only thing they need is RGB, sync, ground and a small voltage to select RGB Mode. If you use SCART then populate R5 to supply the RGB select voltage. SCART uses positive sync with a level of 1 volt and RGB levels of 0.7V, and RGB mode select of 1-3 volts.
Other "CGA" or "RGB" monitors such as the Commodore 10xx series are also compatible. Some of these monitors take both RGBI Digital and RGB Analog. I will have additional info later.
There are various scan doublers that convert 15kHz RGB to 30kHz VGA or HDMI such as the GONBES GBS-8220 or HD9800. These can be connected via the GONBES connector. You will need to use the RGBS input. It's also possible to get a SCART to HDMI adapter.
You could also use an RGB to S-Video adapter, or RGB to Component adapter. Contact me if you want to try these.
Hardware is not very useful without proper software. I have taken the popular CEGMON ROM source code and added extra commenting, more labels and extra customization. I have removed the Disk Bootstrap option and added additional Control codes to support the colour board. The following is added:
Download the latest binary here: SJGMON013-C1E-CWM-CTRL (2019-06-05).BIN.
My CEGMON source and modifications can be found on GITHUB here.
In order to enable the colour ram for proper operation you must (like typical OSI mods) cut a trace on the 600D board and add a jumper. This jumper is not labelled and caused a lot of confusion initially during development. Reading memory would work fine, but writing would write to random locations. Click the picture below for a better view:
Looking from the front of the 600D board, the cut and jumper are located behind the Character ROM and in front of the 74LS20 chip (U56). Cut the trace between the two vias then add a jumper as shown.
The fist revision design is complete, boards have arrived, and have been tested. The boards work! The CEGMON monitor rom has been customized and is working but could be improved.
Page Created: Jun 6/2019. Last updated: Feb 12/2023, 11:00pm EST
Send comments or feedback to Steve Gray(sjgray@rogers.com)